/**
 * 系统引导部分，启动时由硬件加载运行，然后完成对二级引导程序loader的加载
 * 该部分程序存储于磁盘的第1个扇区，在计算机启动时将会由BIOS加载到0x7c00处
 * 之后，将由BIOS跳转至0x7c00处开始运行
 */
	#include "boot.h"

  	.code16				// 16位代码
 	.text
	.global _start
	.extern boot_entry

_start:
	xor %ax, %ax
	mov %ax, %ds
	mov %ax, %es
	mov %ax, %fs
	mov %ax, %gs
	mov %ax, %ss

	mov $_start, %esp

_read_loader:
	mov $0x02, %ah
	mov $64, %al		// 读取64个扇区
	mov $0x02, %cx		// 从第二个扇区开始读
	mov $0x80, %dx		// 从主硬盘读
	mov $0x8000, %bx	// es:bx指向0x8000处
	int $0x13
	jc _read_loader

	jmp boot_entry
	jmp .
	
	// 引导结束段
	.section boot_end, "ax"
boot_sig: .byte 0x55, 0xaa
